From 63281c7acb04598be351aa141804af5c79ea89b0 Mon Sep 17 00:00:00 2001 From: Dirkjan Ochtman Date: Mon, 2 Oct 2017 17:57:24 +0200 Subject: [PATCH] Extract function to record if a feature was seen before --- src/cargo/core/resolver/mod.rs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/cargo/core/resolver/mod.rs b/src/cargo/core/resolver/mod.rs index 699ea5c66..8b512b90e 100644 --- a/src/cargo/core/resolver/mod.rs +++ b/src/cargo/core/resolver/mod.rs @@ -891,6 +891,15 @@ impl<'r> Requirements<'r> { .1.push(feat.to_string()); } + fn seen(&mut self, feat: &'r str) -> bool { + if self.visited.insert(feat) { + self.used.insert(feat); + false + } else { + true + } + } + fn add_feature(&mut self, feat: &'r str) -> CargoResult<()> { if feat.is_empty() { return Ok(()) } @@ -907,13 +916,9 @@ impl<'r> Requirements<'r> { } None => { let feat = feat_or_package; - - //if this feature has already been added, then just return Ok - if !self.visited.insert(feat) { + if self.seen(feat) { return Ok(()); } - - self.used.insert(feat); match self.summary.features().get(feat) { Some(recursive) => { // This is a feature, add it recursively. -- 2.30.2